'''
字典：是一种映射关系的数据类型，每一个元素都是一个键值对
{key：value,key：value,........}
key只能是不可变的数据类型
在字典里面key是唯一的，不能重复出现的，如果重复出现了，后面的value会覆盖前面的value
value可以是任意的数据类型
'''

dict1 = {}
dict2 = dict()  #创建一个空的字典
print(type(dict2)) #<class 'dict'>

# fromkeys（）通过一个列表中的每一个元素作为key，来创建一个字典
star = ['张欣超','张鑫','杨幂','李阔','赵丽颖']
star_dict= {}
star_dict = star_dict.fromkeys(star,100)
print(star_dict)
print (star_dict['张鑫'])

#调用字典里的值，不能使用索引或者切片，（字典是无序的），只能使用dict【’key‘】

star_dict['杨幂'] = 85
star_dict['冯绍峰'] = 95
star_dict['冯绍峰'] = 65
# dict3 = {1:2,3:4,5:6}
# star_dict.update(dict3)  #字典的一个操作，是把后面括号里字典合并到前面的字典中，但是没有返回值
print(star_dict)

print(star_dict.get('巩俐','您要找的这个人不在这个字典里'))

print(star_dict.get('王静坤','没找到'))
# menu = '''
#     1、查询
#     2、修改
#     3、删除
#     4、增加
#     5、退出
# '''
# print(menu)
# menu_dict= {"1":'查询',"2":'修改',"3":'删除',"4":'增加',"5":'退出'}
#
# answer = input('请输入您要进行的操作：')
#
# print(menu_dict.get(answer,'您输入的操作符有误，请重新输入！！'))

star_dict.setdefault('王静坤',99)  #如果字典中没有这个key就添加这个key,并给他赋默认值
star_dict.setdefault('张鑫',99) #如果字典中有这个key, 则不会修改这个key的值
print(star_dict)

#删除字典元素，通过key
del star_dict['杨幂']
print(star_dict)
# del star_dict  #删除了字典，并清空内存
# print(star_dict)
# star_dict.clear()
# print(star_dict)
# setdefault demo

# result = star_dict.pop('张欣超')
# result = star_dict.pop('赵本山','本团队没有这个明星')
# result = star_dict.popitem()
# print (star_dict,result)

#查询字典元素
l = star_dict.keys() #用来获取所有的key,用一个列表来返回

print(list(l))

l1 = star_dict.values()

print(l1)

l2 = star_dict.items() #*****

print(l2)

# for i in star_dict:
#     if '张' in i:
#         star_dict[i] += 5
# print(star_dict)
a,b = (10,20)
for key,value in star_dict.items():
    # print(key,value)
    if '张' in key:
       star_dict[key] = value+5
print(star_dict)